Goto

Collaborating Authors

 language convenient


What Is Programming?

Communications of the ACM

Alan Blackwell's work takes us through the historical definitions of programming.1 Initially, it is presented as the process of drawing up the "schedule" for the sequence of individual operations required to carry out a calculation. Later definitions expand this to the process of translating from a language convenient for humans to a language convenient for the computer. If we, as a community, adopt these narrow definitions, the entirety of programming may well be made redundant by the ceaselessly growing capabilities of generative AI. However, during the 1970s, Donald Knuth, and similarly Edsger Dijkstra, argued programming was something more.2,4 They argued that programming was the "art" of composing programs, which requires awareness of aesthetics, use of ingenuity, and inherent creativity. From this perspective, programming is more about composing pieces of code to solve a problem rather than writing individual lines of instructions.